package com.opo5.logisticsmanagement.common;

/**
 * @Title: MenuUtil
 * @Author: lixin
 * @Date: 2022/07/10/20:28
 * @Description: 获取多级菜单工具类
 */
public class MenuUtil {

    /*public static List<RoleMenuTreeVo> getMenu(Integer id, List<RoleMenuVo> child){
        List<RoleMenuTreeVo> result = null;
        List<RoleMenuVo> root = null;
        List<RoleMenuVo> temp = null;
        if (id!=null){
            //取出所有的根
            root = child.stream().filter(roleMenuVo -> roleMenuVo.getMenu().getParentId().equals(id)).collect(Collectors.toList());
            //取出所有的子
            temp = child.stream().filter(roleMenuVo -> !(roleMenuVo.getMenu().getParentId().equals(id))).collect(Collectors.toList());
        }else{
            //取出所有的根
            root = child.stream().filter(roleMenuVo -> roleMenuVo.getMenu().getParentId()==null).collect(Collectors.toList());;
            //取出所有的子
            temp = child.stream().filter(roleMenuVo -> roleMenuVo.getMenu().getParentId()!=null).collect(Collectors.toList());
        }

        result = new ArrayList<>();

        RoleMenuTreeVo roleMenuTreeVo = null;
        for (int i = 0; i < root.size(); i++) {

            roleMenuTreeVo = new RoleMenuTreeVo();

            Integer parentId = root.get(i).getMenu().getId();
            List<RoleMenuVo> temp2 = temp.stream().filter(roleMenuVo -> roleMenuVo.getMenu().getParentId().equals(parentId)).collect(Collectors.toList());
            if(temp2.size()==0){
                if (id == null){
                    System.out.println(root.get(i));
                    roleMenuTreeVo.setId(root.get(i).getMenu().getId());
                    roleMenuTreeVo.setLabel(root.get(i).getMenu().getName());
                    result.add(roleMenuTreeVo);
                    if (root.size() == result.size()){
                        return result;
                    }
                    continue;
                }else{
                    System.out.println(root.get(i));
                    roleMenuTreeVo.setId(root.get(i).getMenu().getId());
                    roleMenuTreeVo.setLabel(root.get(i).getMenu().getName());
                    result.add(roleMenuTreeVo);
                    if (root.size() == result.size()){
                        return result;
                    }
                    continue;
                }
            }else{
                roleMenuTreeVo.setId(root.get(i).getMenu().getId());
                roleMenuTreeVo.setLabel(root.get(i).getMenu().getName());
                roleMenuTreeVo.setChildren(getMenu(root.get(i).getMenu().getId(),temp));
                result.add(roleMenuTreeVo);
                if (root.size() == result.size()){
                    return result;
                }
            }
        }


        return null;
    }*/


}
